Typical controller devices allow users to interact with applications by providing user input to those applications in direct response to user inputs or interactions with the controller. The application then responds to that user input. Well-known examples of controllers include, but are not limited to, gamepads, paddles, joysticks, trackballs, throttles, steering wheels, yokes, pedals, keyboards, mouse-type devices, touchscreen devices, etc.